﻿<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class ClienteDAO extends CI_Model{
	
	// Insere Cliente
	
	public function __construct()
    {
        parent::__construct();
		$this->load->database();
		$this->load->library('Dominio');
    }
	
	public function insert($cliente){
		$this->db->trans_start();
			$dados = array ('id_cliente' => $cliente->getIdCliente(),
							'nome_cliente' => $cliente->getNomeCliente(),
							'sexo' => $cliente->getSexo(),
							'data_nascimento' => $cliente->getDataNascimento(),
							'endereco' => $cliente->getEndereco(),
							'telefone' => $cliente->getTelefone(),
							'email' => $cliente->getEmail(),
							'outros_contatos' => $cliente->getOutrosContatos(),
							'parentes' => $cliente->getParentes(),
							'historico_familiar' => $cliente->getHistoricoFamiliar(),
							'etnia' => $cliente->getEtnia(),
							'altura' => $cliente->getAltura(),
							'peso' => $cliente->getPeso(),
							'glicemia' => $cliente->getGlicemia(),
							'pressao_arterial' => $cliente->getPressaoArterial(),
							'contra_indicacao' => $cliente->getContraIndicacao(),
							'historico_doencas' => $cliente->getHistoricoDoencas(),
							'plano_saude' => $cliente->getPlanoSaude(),
							'medicos_preferidos' => $cliente->getMedicosPreferidos(),
							'onde_costuma_comprar' => $cliente->getOndeCostumaComprar());
			$this->db->insert('clientes', $dados);
		$this->db->trans_complete();
		if($this->db->trans_status())
			return "Cliente inserido com sucesso!";
		return FALSE;
	}
	
	// Edita Cliente
	
	public function update($cliente){
		$this->db->trans_start();	
			$dados = array ('id_cliente' => $cliente->getIdCliente(),
							'nome_cliente' => $cliente->getNomeCliente(),
							'sexo' => $cliente->getSexo(),
							'data_nascimento' => $cliente->getDataNascimento(),
							'endereco' => $cliente->getEndereco(),
							'telefone' => $cliente->getTelefone(),
							'email' => $cliente->getEmail(),
							'outros_contatos' => $cliente->getOutrosContatos(),
							'parentes' => $cliente->getParentes(),
							'historico_familiar' => $cliente->getHistoricoFamiliar(),
							'etnia' => $cliente->getEtnia(),
							'altura' => $cliente->getAltura(),
							'peso' => $cliente->getPeso(),
							'glicemia' => $cliente->getGlicemia(),
							'pressao_arterial' => $cliente->getPressaoArterial(),
							'contra_indicacao' => $cliente->getContraIndicacao(),
							'historico_doencas' => $cliente->getHistoricoDoencas(),
							'plano_saude' => $cliente->getPlanoSaude(),
							'medicos_preferidos' => $cliente->getMedicosPreferidos(),
							'onde_costuma_comprar' => $cliente->getOndeCostumaComprar());
			$this->db->where('id_cliente', $cliente->getIdCliente());
			$this->db->update('clientes', $dados);
		$this->db->trans_complete();
		if($this->db->trans_status())
			return "Cliente alterado com sucesso!";
		return FALSE;
	}
	
	// Exclui Cliente
	
	public function delete($id_cliente){
		$this->db->trans_start();
			$this->db->where('id_cliente', $id_cliente);
			$this->db->delete('clientes'); 
		$this->db->trans_complete();
		if($this->db->trans_status())
			return "Cliente excluído com sucesso!";
		return FALSE;
	}
	
	// Vizualizar Cliente
	
	public function get($id) 
	{
		$this->db->where('id_cliente', $id);
		$query = $this->db->get('clientes');
		if($query->num_rows == 0)
			return null;
			
		$r = $query->row();
		return new Cliente(
								$r->nome_cliente,
								$r->sexo,
								$r->data_nascimento,
								$r->endereco,
								$r->telefone,
								$r->email,
								$r->outros_contatos,
								$r->parentes,
								$r->historico_familiar,
								$r->etnia,
								$r->altura,
								$r->peso,
								$r->glicemia,
								$r->pressao_arterial,
								$r->contra_indicacao,
								$r->historico_doencas,
								$r->plano_saude,
								$r->medicos_preferidos,
								$r->onde_costuma_comprar,
								$r->id_cliente
							);
	}
	
	// Lista Clientes
	
	public function getAll() 
	{
		$this->db->order_by('nome_cliente', 'asc');
		$query = $this->db->get('clientes');
		if($query->num_rows() > 0) {
			foreach ($query->result() as $r){
				$cols[] = new Cliente(
										$r->nome_cliente,
										$r->sexo,
										$r->data_nascimento,
										$r->endereco,
										$r->telefone,
										$r->email,
										$r->outros_contatos,
										$r->parentes,
										$r->historico_familiar,
										$r->etnia,
										$r->altura,
										$r->peso,
										$r->glicemia,
										$r->pressao_arterial,
										$r->contra_indicacao,
										$r->historico_doencas,
										$r->plano_saude,
										$r->medicos_preferidos,
										$r->onde_costuma_comprar,
										$r->id_cliente
									);
			}
			return $cols;
		}
		return FALSE;
	}
}

/* End of file clientedao.php */
/* Location: ./application/models/clientedao.php */